package modelo.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import modelo.Material;
import modelo.Status;

public class DAOMateriales {
	protected HashMap<Integer, Material> materiales = new HashMap<Integer, Material>();
	
	public void cargarMateriales() {
		ResultSet rs = Servidor.consultar(
			"SELECT *\n" +
			"FROM material\n"
			);
		
		try {
			while (rs.next()) {
				Material e = new Material(rs.getInt("cod_material"), rs.getString("descripcion"), rs.getDouble("existencia"), rs.getDouble("stock_minimo"), rs.getDouble("stock_maximo"), rs.getDouble("costo_unitario"), Servidor.impuestos().consultarImpuestoPorCodigo(rs.getInt("cod_impuesto")), Status.valueOf(rs.getInt("status")));
				materiales.put(e.clave(), e);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public ArrayList<Material> consultarMateriales() {
		ResultSet rs = Servidor.consultar(
			"SELECT cod_material\n" +
			"FROM material\n"
			);
		
		return adjuntarImpuesto(rs);
	}
	
	public Material consultarMaterialPorCodigo(int codigo) {
		return materiales.get(codigo);
	}
	
	private ArrayList<Material> adjuntarImpuesto(ResultSet rs) {
		ArrayList<Material> lst = new ArrayList<Material>();
		
		try {
			while (rs.next())
				lst.add(materiales.get(rs.getInt("cod_material")));
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return lst;
	}
	
}
